package per.dg.basicuseretrofit

import com.google.gson.JsonObject
import retrofit2.Call
import retrofit2.http.*

/**
 * 注解
 * @POST
 * @GET
 *
 * @Query
 * @QueryMap    get请求时，拼接到？后的部分。如？id=1
 *
 * @Path    用于占位符
 *
 * @FormUrlEncoded
 * @Field
 * @FieldMap    post请求时，需要的参数
 *
 * @Header
 * @Headers
 * @HeaderMap   head文件（头文件）中需要添加的设置
 */

interface APIService {

//    注册
    @POST("/user/register")
    fun regist(@Query("username") username:String, @Query("password") password:String, @Query("repassword") repassword:String) : Call<WanAndroidResponse<WanAndroidUser>>

//    登陆
    @FormUrlEncoded
    @POST("/user/login")
    fun login(@Field("username") username:String, @Field("password") password:String) : Call<WanAndroidResponse<WanAndroidUser>>

//    首页文章列表
    @GET("/article/list/{page}/json")
    fun homeArticleList(@Path("page") page:Int) : Call<WanAndroidResponse<ArticleList>>

//     收藏的文章列表
    @GET("/lg/collect/list/{page}/json")
    fun collectionArticleList(@Path("page") page:Int, @HeaderMap map: Map<String, String>) : Call<WanAndroidResponse<ArticleList>>

//    收藏指定文章
//    @Headers("Authorization: authorization")
//    或
//    @Headers("Accept: application/vnd.github.v3.full+json",
//        "User-Agent: Retrofit-Sample-App")
    @POST("/lg/collect/{article_id}/json")
    fun collectArticle(@Path("article_id") article_id:Int, @Header("cookie") cookie: String): Call<JsonObject>
}